from loguru import logger
import os
from datetime import datetime

# 日志目录：基于当前文件的位置计算绝对路径
# __file__ 是当前文件（log_utils.py）的路径
current_dir = os.path.dirname(os.path.abspath(__file__))  # log_utils.py 所在目录（utils/）
log_dir = os.path.join(current_dir, "../logs")  # 拼接为项目根目录下的 logs
log_dir = os.path.abspath(log_dir)  # 转换为绝对路径（消除 ../ 层级）

if not os.path.exists(log_dir):
    os.makedirs(log_dir, exist_ok=True)  # 加 exist_ok=True 避免目录已存在时报错

# 日志文件名（按时间生成）
log_file = f"{log_dir}/{datetime.now().strftime('%Y%m%d%H%M%S')}.log"

# 配置日志：输出到文件+控制台，设置级别为INFO
logger.add(
    log_file,
    level="INFO",
    format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {module}.{function}:{line} | {message}",
    rotation="1 day",  # 每天生成一个新日志文件
    retention="7 days"  # 保留7天日志
)

# 对外提供logger实例
log = logger